//+build wireinject

package main

import (
	"context"
	"github.com/google/wire"
	"grpc-demo/app/grpc-demo-server/internal/biz"
	"grpc-demo/app/grpc-demo-server/internal/data"
	"grpc-demo/app/grpc-demo-server/internal/server"
	"grpc-demo/app/grpc-demo-server/internal/service"
	"net"
)

func initApp(ctx context.Context, lister net.Listener) *App {
	wire.Build(NewApp, biz.NewProductUseCase, data.NewProductRepo, service.NewProductService, server.NewGRPCServer)
	return &App{}
}